Activity management tool

ABSTRACT

A method for providing an activity management tool includes receiving a user request for an activity overview, and identifying installed applications and open windows of the installed applications. The method further includes presenting an activity overview graphical user interface (GUI) having a first area and a second area. The first area includes visual indicators of the installed applications. The second area includes the open windows of the installed applications, where the open windows are resized and positioned in such a way as to be simultaneously viewable by the user.

RELATED APPLICATION

This patent application is a continuation of U.S. Non-Provisionalapplication Ser. No. 12/576,201 filed on Oct. 8, 2009, entitled“Activity Management Tool” which is incorporated herein by reference forall purposes.

TECHNICAL FIELD

Embodiments of the present invention relate to operating systems.Specifically, embodiments of the invention relate to an activitymanagement tool supported by an operating system.

BACKGROUND

The increased processing power of personal computers allows users toperform multiple tasks simultaneously. Such multitasking can occur in asingle application (e.g., launching multiple instances of a web browser)or across multiple applications. In window-based operating systems, eachcurrently running application may have one or more windows open toexecute tasks desired by the user. Hence, the user may have asignificant number of windows (e.g., 10-15 windows) opened at the sametime. Navigation between such a large number of windows can be confusingand disruptive.

One existing approach deals with the above problem by presentingcurrently open windows in a reduced form so that they can all fit on asingle screen. While this approach helps the user to navigate betweencurrently opened windows, it has several limitations. For example, theabove approach does not present to a user an overview of all availableactivities and/or active work spaces when the user is viewing openwindows associated with current activities. Neither does the aboveapproach allow the user to add new activities and/or organize new andexisting activities onto separate work spaces while viewing open windowsof the existing activities, etc.

Accordingly, there is a need for an efficient tool that can provide anintegrated digital work environment for a user.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is illustrated by way of example, and not by wayof limitation, in the figures of the accompanying drawings in which likereferences indicate similar elements. It should be noted that differentreferences to “an” or “one” embodiment in this disclosure are notnecessarily to the same embodiment, and such references mean at leastone.

FIG. 1 is a block diagram of one embodiment of a personalactivity/workspace management system.

FIG. 2 is a block diagram of one embodiment of an activity managementtool.

FIG. 3 is a block diagram of one embodiment of a workspace managementtool.

FIG. 4 illustrates an exemplary activity overview GUI, in accordancewith some embodiments of the invention.

FIG. 5A illustrates exemplary visual indicators of applications, inaccordance with some embodiments of the invention.

FIGS. 5B and 5C illustrate an exemplary application switching mechanism,in accordance with some embodiments of the invention.

FIG. 6 illustrates an exemplary application menu, in accordance withsome embodiments of the invention.

FIG. 7 is a flow diagram of one embodiment of a method for providing anactivity management tool.

FIG. 8 illustrates an exemplary workspace overview GUI, in accordancewith some embodiments of the invention.

FIG. 9 is a flow diagram of one embodiment of a method for providing aworkspace management tool.

FIG. 10 is a block diagram of one embodiment of a computing systemproviding an integrated digital work environment.

DETAILED DESCRIPTION

Embodiments of a method and system for providing an activity managementtool are described herein. In one embodiment, in response to a userrequest for an activity overview, an operating system identifiescurrently running applications, applications that are likely to be runin the future, and open windows of the currently running applications.Based on this information, an activity overview graphical user interface(GUI) is created and presented on a display device of the computingsystem. The activity overview GUI has a first area and a second area.The first area includes visual indicators (e.g., icons) of the currentlyrunning applications and the applications likely to be run in thefuture. The second area includes the open windows of the currentlyrunning applications, where the open windows are resized and positionedin such a way as to be simultaneously viewable by the user. The activityoverview GUI may also provide various other functionality pertaining toavailable activities and currently open windows. For example, theactivity overview GUI may allow a user to view the state of currentactivities, switch between current activities, add new activities,navigate between currently open windows, add new windows for currentactivities, etc.

FIG. 1 is a diagram of one embodiment of a personal activity/workspacemanagement system 100 that may be part of a computing system such as aclient computer (e.g., a personal computer, a laptop, a PDA, a mobilephone, etc.), a server computer, etc. System 100 includes an operatingsystem (e.g., Linux OS, Windows® OS, etc.), applications 102 running ontop of the operating system 104, and a display device 112 that displaysdata generated by the applications 102 and the operating system 104. Thedisplay device 112 may be, for example, a liquid crystal display (LCD),a cathode ray tube (CRT), or any other device capable of displayingdata. The operating system 104 communicates with the display device 112via a display driver 114 that may be part of the operating system 104 oran independent component. In particular, when an application 102 hasdata to display to the user, it sends a request to the operating system104, requesting a window for the presentation of the data. The operatingsystem then sends instructions to a display driver 114 to create thestructure of the window on the display device 112, and informs theapplication 102 of the area within which its data can be displayed.

If multiple applications 102 are running concurrently, then severalwindows associated with these applications 102 may be displayed. At anygiven time, one of these windows is the active window, namely the windowwhich pertains to the current task and receives user input. While havingmultiple windows simultaneously open on the display provides the userwith instantaneous access to the information associated with a number ofdifferent tasks, such a display may also create confusion and disruptionin the user experience. For example, multiple open windows can make itharder for the user to keep track of all current activities, may inhibitthe user's ability to navigate to a particular item of information thatis desired, etc. In one embodiment, the operating system 104 includes asubsystem 106 that addresses the above issues by providing an integrateddigital work environment which significantly improves the userexperience with respect to visualizing the user current activities,starting new activities, organizing user activities onto differentworkspaces, and switching between current activities and/or workspaces.In one embodiment, the subsystem 106 includes an activity managementtool 108, which is directed to activity-related functionality, and aworkspace management tool 110, which is directed to work-space relatedfunctionality. In another embodiment (not shown), the subsystem 106integrates activity management and workspace management into a singletool.

FIG. 2 is a block diagram of one embodiment of an activity managementtool 200. The activity management tool 200 may include an applicationmanager 202, a window manager 204 and an activity overview GUI 206. Theapplication manager 202 identifies favorite applications of a user andrecords them in a list 208. In one embodiment, the application manager202 identifies favorite applications based on user input. Alternatively,the application manager 202 identifies favorite activities byautomatically determining most frequently used applications based onhistory data (e.g., history data collected daily, monthly, etc.) andperiodically updating the list 208. In addition, the application manager202 determines the current state of each application and stores thisinformation in the list 208. The current state of an application may be,for example, an active (currently running) state, inactive state, activestate with messages (e.g., email or text messages), active state with anurgent event (e.g., a calendar reminder), etc.

In one embodiment, the application manager 202 also collects informationon user places (e.g., folders, storage devices, etc.) and/or user recentdocuments. The application manager 202 may store this data in theapplication list 208 or a separate data store (not shown).

The window manager 204 identifies open windows of applications andstores this information in an open window list 210. Each window in thelist 210 is associated with a relevant application. In other words, thewindow manager 204 maintains up-to-date information on open windows inthe list 210 with an indication of a currently active window.

The activity overview GUI 206 presents an overview of availableactivities to the user based on information in the application list 208and the open window list 210. The activity overview GUI 206 is invokedin response to a user request. The user request may be generated whenthe user activates a hardware menu button, a designated keyboard key ora designated control (e.g., a specific link) on the screen, or adesignated region (e.g., a hot-corner region) on the screen. In oneembodiment, when the activity overview GUI 206 is launched, a transitionfrom a currently active window is animated to make the user feel as ifhe or she is taking a step back to gain a wider view of the activitiesavailable on the user's computer system. The animation may be based on aphysical model (e.g., slow start and stop).

The activity overview GUI 206 includes an activity area and a windowingarea. The windowing area displays all open windows. The windows arereduced in size and positioned without a significant overlap to allowthe user a simultaneous viewing of all the windows. The activity areaincludes visual indicators of available applications that may or may notbe currently running. A visual indicator illustrates a function or abrand of the application and provides an indication of the applicationstate (e.g., inactive, active with a single open window, active withmultiple open windows, active with messages, active with urgent events,etc.). Visual indicators can be used, for example, to launch respectiveapplications, add a new window for a currently running application,bring the user to the most recently used window of the application,switch between current activities, etc. An exemplary activity overviewGUI will be discussed in more detail below in conjunction with FIG. 4.

FIG. 3 is a block diagram of one embodiment of a workspace managementtool 300. The workspace management tool 300 may include an applicationmanager 302, a window manager 304, a workspace manager 306, and aworkspace overview GUI 308. The application manager 302 identifiesfavorite applications of a user and records them in a list 312. In oneembodiment, the application manager 302 identifies favorite applicationsbased on user input. Alternatively, the application manager 302identifies favorite activities by automatically determining mostfrequently used applications based on history data (e.g., history datacollected daily, monthly, etc.) and periodically updating the list 312.In addition, the application manager 302 determines the current state ofeach application and stores this information in the list 312.

In one embodiment, the application manager 302 also collects informationon user places (e.g., folders, storage devices, etc.) and/or user recentdocuments. The application manager 302 stores this data in the recentdocuments list 314.

The window manager 304 identifies open windows of applications andstores this information in an open window list 316. Each window in thelist 316 is associated with a relevant application and has an activewindow indicator specifying whether this window is currently active ornot.

The workspace manager 306 identifies current workspaces of the user andstores this information in a workspaces list 318. Each workspace in thelist 318 may be associated with one or more open windows and/or one ormore items (e.g., recent documents or places).

The workspace overview GUI 308 presents an overview of user workspacesbased on information in the applications list 312, recent documents list314, open windows list 316 and workspaces list 318. The workspaceoverview GUI 308 is invoked in response to a user request. The userrequest may be generated when the user activates a hardware menu button,a designated keyboard key or a designated control (e.g., a specificlink) on the screen, or a designated region (e.g., a hot-corner region)on the screen. In one embodiment, when the workspace overview GUI 308 islaunched, a transition from a currently active window is animated tomake the user feel as if he or she is taking a step back to gain a widerview of the user's workspaces.

The workspace overview GUI 308 has an activity area and a windowingarea. The windowing area includes several regions, each regioncorresponding to a different workspace. Each workspace may have one ormore open windows and/or one or more open items (places and documents).The windows and items are reduced in size and positioned without asignificant overlap to allow the user a simultaneous viewing of all thewindows and items. The activity area includes visual indicators ofavailable applications that may or may not be currently running. Avisual indicator of an application illustrates a function or a brand ofthe application and provides an indication of the application state.Visual indicators can be used, for example, to launch respectiveapplications in different workspaces, add new windows for currentlyrunning applications in different workspaces, bring the user to the mostrecently used window of the application, switch between workspaces andcurrent activities, etc.

In one embodiment, the activity area also includes visual indicators ofplaces (e.g., folders, storage devices, etc.) and/or visual indicatorsof documents (e.g., recently used documents). A visual indicator of aplace may illustrate the type of a place (e.g., a symbol of a folder ora storage device). A visual indicator of a document may illustrate thetype of a file (e.g., a symbol of an application associated with thefile). Visual indicators may be used to associate places and/ordocuments with different workspaces, connect to a place, open adocument, etc. An exemplary workspace overview GUI will be discussed inmore detail below in conjunction with FIG. 8.

It should be noted that the activity management tool 200 and/or theworkspace management tool 300 may have more or less components thanthose shown in FIGS. 2 and 3. In addition, the components shown in FIGS.2 and 3 may represent modules or sub-modules of the tools 200 and 300,or logical blocks of the tools 200 and 300.

In some embodiments, the activity management tool 200 and/or theworkspace management tool 300 represent an Operating System Shell thatmay provide the desktop environment of the operating system, as well asthe file management functionality of the operating system. The Shell mayuse accelerated video hardware (e.g., through Open Graphics Library(OpenGL)) to provide sophisticated layout and animations, including forexample the zoom in and out animation of GUIs 206 and 308, scaling ofwindow images in GUIs 206 and 308, use of transparency and sophisticatedcompositing features in GUIs 206 and 308, the ability to have liveimages of windows in GUIs 206 and 308, etc.

FIG. 4 illustrates an exemplary activity overview GUI 400, in accordancewith some embodiments of the invention. GUI 400 may have a top menu barwith various items including, for example, Activities 402, ActiveApplication, clock, etc. GUI 400 can be launched when the user activates(e.g., clicks) Activities 402 while interacting with a currently activewindow. Alternatively, when GUI 400 is shown, the user can clickActivities 402 to leave the GUI 400 and return to the most recently usedapplication. The Active Application item may show the most recently usedapplication.

Region 404 representing the upper left corner of the Activities item 402and the screen is known as a “hot corner.” Moving the pointer intoregion 404 may automatically activate the Activities item 402, launchingthe GUI 400 or returning to the most recently used application. Inaddition to the hot corner 404 and Activities 402, the GUI 400 may belaunched when the user presses a hardware menu button or a designatedkey on the keyboard.

Below region 404, there is a search region 404 allowing the user toenter a keyword and request a search by activating “Find” control.

The GUI 400 also includes activity area 430 and windowing area 414. Theactivity area 430 may present visual indicators of the user's favoriteapplications 408. As shown, a visual indicator may include an iconillustrating the function or the brand of the application, and one ormore additional graphical objects to illustrate the state of an activeapplication. FIG. 5A illustrates exemplary visual indicators ofapplications, in accordance with some embodiments of the invention.

Referring to FIG. 5A, indicator 502 includes only an icon (without anadditional graphical object) because the corresponding application iscurrently inactive. Indicator 504 includes an icon and an additionalgraphical object in the form of a name backlit with a single lightsource, illustrating that the corresponding application is active with asingle open window. Indicator 506 includes an icon and a name backlitwith multiple light sources, illustrating that the correspondingapplication is active with multiple open windows. Indicator 508 includesan icon with background, illustrating that the corresponding applicationis inactive but has a cursor positioned over its icon. Indicator 510includes an icon surrounded by border, illustrating that thecorresponding application is inactive but is a match result of a searchperformed in region 406. Indicator 512 includes an icon, a number and aname backlit with a single light source, illustrating that thecorresponding application is active with a single window and one or moremessages (as shown by the number). Indicator 514 includes an icon with apulsing name highlight, illustrating that the corresponding applicationis active with a single window and an urgent window event.

Returning to FIG. 4, the windowing area 414 displays windows ofcurrently active applications. In particular, area 414 includes windows416, 418, 420 and 422 associated with applications 408 that have namebacklit. The windows 416, 418, 420 and 422 are scaled down versions ofthe running application windows and they appear in a non-overlapping,tiled array to allow the user to identify and select windows in theirrunning context. To facilitate identification, the fidelity of theoriginal window is largely preserved in the scaled version. In addition,an application icon is displayed in the lower right corner of eachscaled window, and a text label for the window appears when the pointeris placed over the window (window 416).

The user can manipulate the windowing area 414 using visual indicators408. For example, a specific action with respect to an icon (e.g.,clicking on an icon) of an inactive application launches the applicationand brings the user to the newly opened window of the application. Inaddition, a specific action with respect to an icon (e.g., clicking onan icon) of an active application, brings the user to the most recentlyused window of the application. Further, a designated action withrespect to an item (e.g., clicking and holding the cursor on an item)brings an application menu. FIG. 6 illustrates an exemplary applicationmenu, in accordance with some embodiments of the invention.

Referring to FIG. 6, application menu 606 is displayed when the userclicks icon 604 and holds the cursor on icon 604. Menu 606 includes alist of currently open windows of the applications. As the user movesthrough the list of windows in the menu 606, a corresponding window inthe windowing area 414 is identified (e.g., by highlighting orincreasing its size). As shown in 608, if the user releases the mousebutton when the cursor is positioned over item 610, the windowassociated with the item 610 is activated. If the user releases themouse button when the cursor is positioned over the application icon,the menu may be kept open until an item in the menu is selected or anarea outside the menu is clicked. If a drag operation is initiated withrespect to the application item while the menu is being shown, the menumay get closed and the drag operation may begin.

Returning again to FIG. 4, the region hosting the application icons 406is referred to herein as applications well. The application icons 406can be rearranged in the applications well by the user. For example, theuser can drag application icons within the applications well tospatially re-arrange the icons. An animation can be performed toillustrate the icon shifting and make it clear where the icon will bedropped.

Dragging application icons to another position or dragging a window fromthe windowing area 414 will move the application icon to that positionwhere it will remain until moved or removed. This will implicitly add anapplication to the favorites list.

While viewing the GUI 400, the user may decide to switch between activeapplications. In one embodiment, an application switcher is invoked whenthe user presses designated keyboard keys (e.g., Alt-Tab). All activeapplications are then showed ordered by time of last use. FIGS. 5B and5C illustrate an exemplary application switching window 520, inaccordance with some embodiments of the invention.

Referring to FIG. 5B, the application switching window 520 includes oneicon per application. The user can use the keyboard or mouse to switchbetween the application icons. In particular, the user can set theswitcher focus using the mouse hover, which may be indicated using ashaded box around a corresponding application icon (e.g., icon 522).

Referring to FIG. 5C, when the selection focus pauses for a predefinedtime over the application icon, scaled down versions of all open windowsbecome visible to the user. For example, box 536 may appear includingwindows 538 and 540 of application represented by icon 534.

Returning again to FIG. 4, the activity area 430 may further includevisual indicators of places 410 and visual indicators of documents 412.By clicking on a document indicator, the user can open a windowdisplaying the desired document. Opening this window will cause the userto leave the GUI 400. Various other operations can be performed withrespect to icons 410 and 412.

The GUI 400 minimizes user disruption and facilitates user uninterruptedfocus. It helps the user visualize his or her current activities whilesimplifying the addition of new activities. The GUI 400 further helpsthe user to track multiple open windows of an active application and tomake a decision on opening a new window for this application. Once theuser decides to open a new window for an application, the GUI 400 allowsthe user to do it in a simple and convenient manner.

FIG. 7 is a flow diagram of one embodiment of a method 700 for providingan activity management tool. The method 700 may be performed byprocessing logic that may comprise hardware (e.g., circuitry, dedicatedlogic, programmable logic, microcode, etc.), software (e.g.,instructions run on a processing device to perform hardware simulation),or a combination thereof. In one embodiment, the method 700 is performedby a computing system (e.g., a computer hosting a personalactivity/workspace management system 100 of FIG. 1).

Referring to FIG. 7, method 700 begins with processing logic receiving auser request for an activity overview (block 702). The user request maybe received when the user presses a hardware menu button or a designatedkey on the keyboard, activates the Activities item in the top menu bar,or places the cursor in the top-corner region of the screen.

In response to the user request, processing logic identifies currentlyrunning applications and applications to be run in the future (block704), identifies open windows of the currently running applications(block 706), and creates an activity overview GUI using informationidentified at blocks 704 and 706. At block 708, processing logicpresents the activity overview GUI to the user. The activity overviewGUI has an activity area and a windowing area. The activity areaincludes visual indicators of currently running applications andapplications likely to be run in the future. The windowing area includesreduced versions of open windows of currently running applications. Thevisual indicators of the applications illustrate which applications arecurrently running, whether the currently running applications have morethan one window open, etc.

At block 710, processing logic detects, via the activity overview GUI, auser selection of an application indicator (e.g., by clicking on theapplication indicator or by clicking and holding a cursor on theapplication indicator). At block 712, processing logic determineswhether the selected application is currently running. If not,processing logic launches the selected application (block 714) byleaving the activity overview GUI and taking the user to an open windowof this application. If so, processing logic further determines whetherthe user has selected the application by clicking on the applicationindicator in the activity overview GUI (block 718). If thisdetermination is positive, processing logic activates the most recentlyused window of the application (block 716).

Alternatively, if the user has selected the application indicator byclicking the indicator and holding the cursor over the indicator in theactivity overview GUI, processing logic displays the application menufor the selected application (block 720). Next, if the user makes aselection in the application menu (block 722), processing logicdetermines whether the user has selected an open window from theapplication menu (block 724). If so, processing logic activates theselected window (block 726). If not, processing logic opens a new windowfor this application (blocks 728).

FIG. 8 illustrates an exemplary workspace overview GUI 800, inaccordance with some embodiments of the invention. GUI 800 may have atop menu bar with various items including, for example, Activities,Active Application, clock, etc. GUI 800 can be launched when the useractivates (e.g., clicks) Activities while interacting with a currentlyactive window. Alternatively, when GUI 800 is shown, the user can clickActivities to leave the GUI 800 and return to the most recently usedapplication. The Active Application item may show the most recently usedapplication. In addition to Activities, the GUI 800 may be launched whenthe user moves the cursor to the hot corner region of the screen, orwhen the user presses a hardware menu button or a designated key on thekeyboard.

The GUI 800 also includes activity/item area 802 and workspace area 804.The activity/item area 802 may present visual indicators of the user'sfavorite applications 808. As shown, a visual indicator may include anicon illustrating the function or the brand of the application, and oneor more additional graphical objects to illustrate the state of anactive application. Exemplary visual indicators of applications havebeen discussed in more detail below in conjunction with FIG. 5A. Theactivity/item area 802 further includes visual indicators of places 810and visual indicators of documents 812.

The workspace area 804 includes several regions 814 and 816, each regionrepresenting a different workspace. Workspaces may be useful, forexample, for spatial or logical arrangement of windows, to define alocality for a conceptual task, etc. For example, a user may have aworkspace for paying bills, a workspace for work-related tasks, aworkspace for online shopping, etc. Each workspace may include openwindows of relevant applications, windows displaying relevant recentdocuments, and windows providing access to relevant places (e.g.,folders or storage devices). The windows in each workspace are resizedto fit within the corresponding region without significantly overlappingthe other windows displayed in this region to allow the user to identifyand select windows in the working space. To facilitate identification,the fidelity of the original window can be largely preserved in thescaled version. In addition, an application icon can be displayed in thelower right corner of each scaled window, and a text label for thewindow can appear when the pointer is placed over the window.

The user can add a new workspace using button 806. If a workspace has nowindows, the workspace can be removed using button 818. The user canmove windows from one workspace to another, which will automaticallyresize and reposition windows in the other workspace to avoid theoverlap. The user can activate a workspace by clicking inside theworkspace. This will cause the workspace region to occupy the entirescreen.

The user can manipulate the workspaces 814 and 816 using visualindicators 808, 810 and/or 812. For example, dragging an icon of anapplication to a desired workspace adds a new window of the applicationto the workspace. Similarly, dragging an indicator of a document to aworkspace, adds the document's window to the workspace. In anotherexample, a specific action with respect to an icon (e.g., clicking on anicon) of an inactive application launches the application in the currentworkspace and brings the user to the newly opened window of theapplication. In addition, a specific action with respect to an icon(e.g., clicking on an icon) of an active application, brings the user tothe most recently used window of the application in a relevantworkspace. Further, a designated action with respect to an applicationicon (e.g., clicking and holding the cursor on an icon) brings anapplication menu that includes a list of currently open windows of theapplication. As the user moves through the list of windows in the menu,a corresponding window is identified in a workspace by increasing thesize of the window. If the application has windows in multipleworkspaces, windows in different workspaces are identified by increasingthe size. If the user selects a window from the menu, the selectedwindow is activated. If the user selects a new window option in themenu, a new window is added to the current workspace and activated inthe current workspace.

The application icons 808 can be re-arranged in the applications well bythe user. Dragging application icons to another position or dragging awindow from the workspace will move the application icon to thatposition where it will remain until moved or removed. This willimplicitly add an application to the favorites list.

While viewing the GUI 800, the user may decide to switch between activeapplications. In one embodiment, an application switcher is invoked whenthe user presses designated keyboard keys (e.g., Alt-Tab). All activeapplications from all the workspace are then showed ordered by time oflast use, as discussed in more detail above.

Further, while viewing the GUI 800, the user may decide to switchbetween different workspaces by clicking on either an empty or unusedsection of the screen for that workspace, or clicking on an applicationwindow of interest on that workspace.

The GUI 800 helps the user to visualize his or her workspaces and toorganize current activities and items (e.g., places and/or documents)onto different workspaces. It makes it easy for the user to add newactivities or items to a desired workspace. The GUI 800 further helpsthe user to track multiple open windows of an active application evenwhen these open windows are associated with different workspaces.

In some embodiments, GUI 400 of FIG. 4 and GUI 800 of FIG. 8 areprovided by a single tool. In such embodiments, GUIs 400 and 800 providecombined activity and workspace management functionality, where GUI 400provides an environment with a single workspace, and GUI 800 provides anenvironment with multiple workspaces. GUI 400 may include a button(similar to button 806) underneath the area 414 that may be activated toadd a second workspace, which will result in dividing the area 414 intotwo regions (each associated with a different workspace), thustransforming GUI 400 into GUI 800. Similarly, when area 840 has twoworkspaces, the user may activate button 818 in the workspace 816 toremove the workspace 816, thus transforming the GUI 800 into the GUI400.

FIG. 9 is a flow diagram of one embodiment of a method 900 for providinga workspace management tool. The method 900 may be performed byprocessing logic that may comprise hardware (e.g., circuitry, dedicatedlogic, programmable logic, microcode, etc.), software (e.g.,instructions run on a processing device to perform hardware simulation),or a combination thereof. In one embodiment, the method 900 is performedby a computing system (e.g., a computer hosting a personalactivity/workspace management system 100 of FIG. 1).

Referring to FIG. 9, method 900 begins with processing logic presentinga workspace overview GUI having an activity/item area and a workspacearea (block 902). The workspace overview GUI can be activated when theuser presses a hardware menu button or a designated key on the keyboard,activates the Activities item in the top menu bar, or places the cursorin the top-corner region of the screen.

At block 904, processing logic receives, via the workspace overview GUI,a user request to open a new window for an application. If the userrequest is a drag operation (block 906), processing logic adds an openwindow for the application in a corresponding workspace (block 912), andthen resizes and repositions the resulting windows in the workspace toallow easy identification and selection of the windows in this workspace(block 914).

If the user request is not a drag operation, then it is likely to be theuser clicking on the icon of an inactive application or the userselecting a new window option in the application menu of an activeapplication. In such cases, processing logic adds a new open window tothe currently active workspace (block 908) and activates this window(block 910). Subsequently, the user returns to the workspace overviewGUI.

At block 916, processing logic receives, via the workspace overview GUI,a user request to move a window from one workspace to another workspace.In response, processing logic adds the window to the other workspace(block 918) and resizes and repositions the resulting windows in theother workspace (block 920).

FIG. 10 is a block diagram of one embodiment of a computing systemproviding an integrated digital work environment. Within the computingsystem 1000 is a set of instructions for causing the machine to performany one or more of the methodologies discussed herein. In alternativeembodiments, the machine may be connected (e.g., networked) to othermachines in a LAN, an intranet, an extranet, or the Internet. Themachine can operate in the capacity of a server or a client machine in aclient-server network environment, or as a peer machine in apeer-to-peer (or distributed) network environment. The machine may be apersonal computer (PC), a tablet PC, a console device or set-top box(STB), a Personal Digital Assistant (PDA), a cellular telephone, a webappliance, a server, a network router, switch or bridge, or any machinecapable of executing a set of instructions (sequential or otherwise)that specify actions to be taken by that machine. Further, while only asingle machine is illustrated, the term “machine” shall also be taken toinclude any collection of machines (e.g., computers) that individuallyor jointly execute a set (or multiple sets) of instructions to performany one or more of the methodologies discussed herein.

The exemplary computing system 1000 includes a processing device 1002, amain memory 1004 (e.g., read-only memory (ROM), flash memory, dynamicrandom access memory (DRAM) such as synchronous DRAM (SDRAM) or RambusDRAM (RDRAM), etc.), a static memory 1006 (e.g., flash memory, staticrandom access memory (SRAM), etc.), and a secondary memory 1016 (e.g., adata storage device in the form of a drive unit, which may include fixedor removable computer-readable storage medium), which communicate witheach other via a bus 1008.

Processing device 1002 represents one or more general-purpose processingdevices such as a microprocessor, central processing unit, or the like.More particularly, the processing device 1002 may be a complexinstruction set computing (CISC) microprocessor, reduced instruction setcomputing (RISC) microprocessor, very long instruction word (VLIW)microprocessor, processor implementing other instruction sets, orprocessors implementing a combination of instruction sets. Processingdevice 1002 may also be one or more special-purpose processing devicessuch as an application specific integrated circuit (ASIC), a fieldprogrammable gate array (FPGA), a digital signal processor (DSP),network processor, or the like. Processing device 1002 is configured toexecute instructions 1026 (e.g., an activity management tool 108 and/ora workspace management tool 110 of FIG. 1) for performing the operationsand steps discussed herein.

The computer system 1000 may further include a network device 110 (e.g.,NIC, Ethernet network card, etc.). The computer system 1000 also mayinclude a video display unit 1010 (e.g., a liquid crystal display (LCD)or a cathode ray tube (CRT)) connected to the computer system through agraphics port and graphics chipset, an alphanumeric input device 1012(e.g., a keyboard), a cursor control device 1014 (e.g., a mouse), and asignal generation device 1020 (e.g., a speaker).

The secondary memory 1016 may include a machine-readable storage medium(or more specifically a computer-readable storage medium) 1024 on whichis stored one or more sets of instructions (e.g., an activity managementtool 108 and/or a workspace management tool 110 of FIG. 1) embodying anyone or more of the methodologies or functions described herein. Theinstructions 1026 (e.g., an activity management tool 108 and/or aworkspace management tool 110 of FIG. 1) may also reside, completely orat least partially, within the main memory 1004 and/or within theprocessing device 1002 during execution thereof by the computer system1000, the main memory 1004 and the processing device 1002 alsoconstituting machine-readable storage media. The instructions 1026(e.g., an activity management tool 108 and/or a workspace managementtool 110 of FIG. 1) may further be transmitted or received over anetwork 1018 via the network device 110.

The computer-readable storage medium 1024 may also be used to store theinstructions 1026 (e.g., an activity management tool 108 and/or aworkspace management tool 110 of FIG. 1) persistently. While thecomputer-readable storage medium 1026 is shown in an exemplaryembodiment to be a single medium, the term “computer-readable storagemedium” should be taken to include a single medium or multiple media(e.g., a centralized or distributed database, and/or associated cachesand servers) that store the one or more sets of instructions. The terms“computer-readable storage medium” shall also be taken to include anymedium that is capable of storing or encoding a set of instructions forexecution by the machine and that cause the machine to perform any oneor more of the methodologies of the present invention. The term“computer-readable storage medium” shall accordingly be taken toinclude, but not be limited to, solid-state memories, and optical andmagnetic media.

The components and other features described herein (for example inrelation to FIG. 1) can be implemented as discrete hardware componentsor integrated in the functionality of hardware components such as ASICS,FPGAs, DSPs or similar devices. In addition, these components can beimplemented as firmware or functional circuitry within hardware devices.Further, these components can be implemented in any combination ofhardware devices and software components.

In the above description, numerous details are set forth. It will beapparent, however, to one skilled in the art, that the present inventionmay be practiced without these specific details. In some instances,well-known structures and devices are shown in block diagram form,rather than in detail, in order to avoid obscuring the presentinvention.

Some portions of the detailed descriptions above are presented in termsof algorithms and symbolic representations of operations on data bitswithin a computer memory. These algorithmic descriptions andrepresentations are the means used by those skilled in the dataprocessing arts to most effectively convey the substance of their workto others skilled in the art. An algorithm is here, and generally,conceived to be a self-consistent sequence of steps leading to a desiredresult. The steps are those requiring physical manipulations of physicalquantities. Usually, though not necessarily, these quantities take theform of electrical or magnetic signals capable of being stored,transferred, combined, compared and otherwise manipulated. It has provenconvenient at times, principally for reasons of common usage, to referto these signals as bits, values, elements, symbols, characters, terms,numbers or the like.

It should be borne in mind, however, that all of these and similar termsare to be associated with the appropriate physical quantities and aremerely convenient labels applied to these quantities. Unlessspecifically stated otherwise as apparent from the above discussion, itis appreciated that throughout the description, discussions utilizingterms such as “receiving,” “identifying,” “determining,” “presenting,”“activating,” “increasing” or the like, refer to the actions andprocesses of a computer system, or similar electronic computing devicethat manipulates and transforms data represented as physical(electronic) quantities within the computer system's registers andmemories into other data similarly represented as physical quantitieswithin the computer system memories, registers or other such informationstorage, transmission or display devices.

The present invention also relates to an apparatus for performing theoperations herein. This apparatus may be specially constructed for therequired purposes or it may comprise a general purpose computerselectively activated or reconfigured by a computer program stored inthe computer. Such a computer program may be stored in a computerreadable storage medium, such as, but not limited to, any type of diskincluding floppy disks, optical disks, CO-ROMs and magnetic-opticaldisks, read-only memories (ROMs), random access memories (RAMs), EPROMs,EEPROMs, magnetic or optical cards, Flash memory devices includinguniversal serial bus (USB) storage devices (e.g., USB key devices) orany type of media suitable for storing electronic instructions, each ofwhich may be coupled to a computer system bus.

The algorithms and displays presented herein are not inherently relatedto any particular computer or other apparatus. Various general purposesystems may be used with programs in accordance with the teachingsherein or it may prove convenient to construct more specializedapparatus to perform the required method steps. The required structurefor a variety of these systems will appear from the description below.In addition, the present invention is not described with reference toany particular programming language. It will be appreciated that avariety of programming languages may be used to implement the teachingsof the invention as described herein.

A computer-readable storage medium includes any mechanism for storinginformation in a form readable by a computer. For example, acomputer-readable storage medium includes read only memory (“ROM”),random access memory (“RAM”), magnetic disk storage media; opticalstorage media, flash memory devices or other type of machine-accessiblestorage media.

Thus, a method and apparatus for providing an activity management toolhas been described. It is to be understood that the above description isintended to be illustrative and not restrictive. Many other embodimentswill be apparent to those of skill in the art upon reading andunderstanding the above description. The scope of the invention should,therefore, be determined with reference to the appended claims, alongwith the full scope of equivalents to which such claims are entitled.

What is claimed is:
 1. A method, implemented by a computing system,comprising: displaying, on a screen of the computing system, a currentlyactive window of one of a plurality of applications installed on thecomputing system, and a menu bar comprising an activities menu bar item;receiving a user request for an overview of activities available to auser on the computing system in response to the user activating theactivities menu bar item on the menu bar while interacting with thecurrently active window; in response to the user request for theoverview of the available activities, identifying, by the computingsystem, the available activities pertaining to the plurality ofapplications installed on the computing system; identifying, by thecomputing system, open windows of the installed applications, the openwindows comprising the currently active window; transitioning, by thecomputing system, from the displayed currently active window to adesktop environment represented by an activity overview graphical userinterface (GUI) for presenting the overview of the available activities,the activity overview GUI having a first area and a second area, thefirst area comprising visual indicators of the installed applications onthe computing system, and the second area comprising the open windows ofthe installed applications, wherein transitioning from the displayedcurrently active window to the desktop environment represented by theactivity overview GUI comprises including the currently active window inthe second area in a resized form as one of the open windows; andresponsive to a user request to launch an installed applicationdisplayed in the first area that is not presently running on thecomputer system, launching the installed application.
 2. The method ofclaim 1 wherein: a transition from the currently active window to theactivity overview GUI is animated.
 3. The method of claim 1 wherein: theuser request for the overview of activities is received upon the useractivating any one of a hardware menu button, a designating keyboard keyand a designated control on a top menu bar, or upon the user placing acursor in a designated region in the first area; and responsive to theuser request for the overview of activities, the visual indicators ofthe installed applications running on the computing system and the openwindows of the installed applications are displayed on the screen of thecomputing system as part of the desktop environment.
 4. The method ofclaim 1 wherein identifying, by the computing system, the availableactivities comprises: receiving user input specifying favoriteapplications of the user; and adding the favorite applications to a listof user activity.
 5. The method of claim 1 wherein identifying, by thecomputing system, the available activities comprises: automaticallydetermining favorite applications of the user based on frequency of use;and adding the favorite applications to a list of user activity.
 6. Themethod of claim 1 wherein each of the visual indicators of the runningapplications graphically illustrates a function or a brand of arespective application, and a state of the respective application, thestate of the respective application comprising any one of inactive,active with a single open window, active with multiple open windows,active with one or more messages, or active with window urgency.
 7. Themethod of claim 6 further comprising: detecting user activation of avisual indicator of an application in the first area; determiningwhether the application is currently running; if the application is notcurrently running, adding a window for the application in the secondarea; and if the application is currently running, activating a mostrecently used window of the application.
 8. The method of claim 6further comprising: receiving a user request for an application menuassociated with an application having a plurality of open windows;displaying the application menu next to a visual indicator of theapplication, the application menu including a list of open windows ofthe application and an option to create a new window for theapplication; as the user moves the cursor through the list of windows,highlighting or increasing the size of a corresponding window in thesecond area; and upon a user selection of a window from the list ofwindows, activating the selected window.
 9. The method of claim 1further comprising: receiving a user request for an applicationswitcher; displaying a list of active applications ordered by time oflast use; and allowing the user to view a list of open windows for anapplication.
 10. The method of claim 1 further comprising: responsive tothe user opening a new window of one of the installed applications,resizing, by a processing device of the computing system, the openwindows, to have data within each of the open windows and data withinthe new window be simultaneously viewable in the second area.
 11. Anon-transitory computer readable storage medium including instructionsthat, when executed by a computing system, cause the computing system toperform a set of operations comprising: displaying, on a screen of thecomputing system, a currently active window of one of a plurality ofapplications installed on the computing system, and a menu barcomprising an activities menu bar item; receiving a user request for anoverview of activities available to a user on the computing system inresponse to the user activating the activities menu bar item on the menubar while interacting with the currently active window; in response tothe user request for the overview of the available activities,identifying the available activities pertaining to the plurality ofapplications installed on the computing system; identifying open windowsof the installed applications, the open windows comprising the currentlyactive window; transitioning from the displayed currently active windowto a desktop environment represented by an activity overview graphicaluser interface (GUI) for presenting the overview of the availableactivities, the activity overview GUI having a first area and a secondarea, the first area comprising visual indicators of the installedapplications on the computing system, and the second area comprising theopen windows of the installed applications, wherein transitioning fromthe displayed currently active window to the desktop environmentrepresented by the activity overview GUI comprises including thecurrently active window in the second area in a resized form as one ofthe open windows; and responsive to a user request to launch aninstalled application displayed in the first area that is not presentlyrunning on the computer system, launching the installed application. 12.The computer readable storage medium of claim 11 wherein: a transitionfrom the currently active window to the activity overview GUI isanimated.
 13. The computer readable storage medium of claim 11 whereineach of the visual indicators of the running applications graphicallyillustrates a function or a brand of a respective application, and astate of the respective application, the state of the applicationcomprising any one of inactive, active with a single open window, activewith multiple open windows, active with one or more messages, or activewith window urgency.
 14. The computer readable storage medium of claim13 wherein the set of operations further comprises: detecting useractivation of a visual indicator of an application in the first area;determining whether the application is currently running; if theapplication is not currently running, adding a window for theapplication in the second area; and if the application is currentlyrunning, activating a most recently used window of the application. 15.The computer readable storage medium of claim 13 wherein the set ofoperations further comprises: receiving a user request for anapplication menu associated with an application having a plurality ofopen windows; displaying the application menu next to a visual indicatorof the application, the application menu including a list of openwindows of the application and an option to create a new window for theapplication; as the user moves the cursor through the list of windows,highlighting or increasing the size of a corresponding window in thesecond area; and upon a user selection of a window from the list ofwindows, activating the selected window.
 16. The computer readablestorage medium of claim 11 wherein the set of operations furthercomprises: receiving a user request for an application switcher;displaying a list of active applications ordered by time of last use;and allowing the user to view a list of open windows for an application.17. A computing system comprising: a memory; a display device, coupledto the memory, to display a currently active window of one of aplurality of applications installed on the computing system, and a menubar comprising an activities menu bar item; at least one processorcoupled to the memory and the display device; and an operating systemexecuted by the at least one processor to: receive a user request for anoverview of activities available to a user on the computing system inresponse to the user activating the activities menu bar item on the menubar while interacting with the currently active window; identify theavailable activities pertaining to the plurality of applicationsinstalled on the computing system; identify open windows of theinstalled applications, the open windows comprising the currently activewindow; transition, on the display device, from the displayed currentlyactive window to a desktop environment represented by an activityoverview graphical user interface (GUI) having a first area and a secondarea, the first area comprising visual indicators of the installedapplications, and the second area comprising the open windows of theinstalled applications, wherein transitioning from the displayedcurrently active window to the desktop environment represented by theactivity overview GUI comprises including the currently active window inthe second area in a resized form as one of the open windows; andresponsive to a user request to launch an installed applicationdisplayed in the first area that is not presently running on thecomputer system, launch the installed application.
 18. The system ofclaim 17 wherein each of the visual indicators of the currently runningapplications graphically illustrates a function or a brand of arespective application, and a state of the respective application, thestate of the application comprising any one of inactive, active with asingle open window, active with multiple open windows, active with oneor more messages, or active with window urgency.
 19. The system of claim18 wherein the activity overview GUI is to: detect user activation of avisual indicator of an application in the first area; determiningwhether the application is currently running; if the application is notcurrently running, add a window for the application in the second area;and if the application is currently running, activate a most recentlyused window of the application.
 20. The system of claim 19 wherein theactivity overview GUI is to: receive a user request for an applicationmenu associated with an application having a plurality of open windows;display the application menu next to a visual indicator of theapplication, the application menu including a list of open windows ofthe application and an option to create a new window for theapplication; as the user moves the cursor through the list of windows,highlight or increase the size of a corresponding window in the secondarea; and upon a user selection of a window from the list of windows,activate the selected window.